//#include "sort.h"
//
//void test()
//{
//	int arr[] = { 5, 3, 9, 6, 2, 4, 7, 1, 8 };
//	//int arr[] = { 8,8,7,1,8};
//	int n = sizeof(arr) / sizeof(arr[0]);
//	//QuickSort1(arr, 0, n - 1);
//	//QuickSort2(arr, 0, n - 1);
//	QuickSort3(arr, 0, n - 1);
//	for (auto& e : arr)
//	{
//		cout << e << " ";
//	}
//	cout << endl;
//}
//
//int main()
//{
//	test();
//
//	return 0;
//}

#include <iostream>

using namespace std;

typedef long long LL;
LL a, b, p;

LL qpow()
{
	LL ret = 1;
	while (b)
	{
		if (b & 1) ret = ret*a%p;
		a = a * a % p;
		b >>= 1;
	}
	return ret;
}

int main()
{
	cin >> a >> b >> p;
	printf("%lld^%lld mod %lld=%lld", a, b, p, qpow());

	return 0;
}

